home *** CD-ROM | disk | FTP | other *** search
/ The Fatted Calf / The Fatted Calf.iso / Applications / Games / NeXTmj / Source / Tile.cc < prev    next >
Text File  |  1994-04-27  |  1KB  |  77 lines

  1.  
  2. /*
  3.  $Author$
  4.  $Header$
  5.  *
  6.  $Log$
  7.  */
  8.  
  9. #import    "Tile.h"
  10.  
  11. extern "Objective-C" {
  12. #import    <defaults/defaults.h>
  13. #import    <dpsclient/psops.h>
  14. }
  15.  
  16. extern "C" {
  17. #import    <assert.h>
  18. #import    <libc.h>
  19. #import    <string.h>
  20. }
  21.  
  22.  
  23.                                                 // This is a subdirectory within
  24.                                                 //    the application where the tile
  25.                                                 //    tiff images are stored.
  26. #define    TILE_TIFF_DIRECTORY    "NeXTmj-tiff"
  27.  
  28.  
  29. Tile::Tile( void ) {
  30.  
  31.     my_tile_image = nil;
  32. }
  33.  
  34. Tile::~Tile( void ) {
  35.  
  36.     [ my_tile_image free ];
  37. }
  38.  
  39.  
  40. void Tile::loadImageFromFile( const char* aFile ) {
  41.  
  42.     char    *buf = alloca( strlen( NXArgv[ 0 ] ) + + strlen( TILE_TIFF_DIRECTORY ) + strlen( aFile ) + 8 ),
  43.             *ptr;
  44.     
  45.  
  46.                                                 // Build a full path file name.
  47.     strcpy( buf, NXArgv[ 0 ] );
  48.     if( ptr = strrchr( buf, '/' ))
  49.         *( ptr + 1 ) = '\0';
  50.     strcat( buf, TILE_TIFF_DIRECTORY"/" );
  51.     strcat( buf, aFile );
  52.     
  53.                                                 // Allocate and initialize
  54.                                                 //    a tiff image.
  55.     my_tile_image = [[ NXImage alloc ] initFromFile:buf ];
  56.     assert( my_tile_image );
  57. }
  58.  
  59.  
  60. void Tile::compositeImage( NXPoint aPoint, int aMode ) {
  61.  
  62.  
  63.     NXRect    r;
  64.     
  65.     assert( my_tile_image );
  66.     
  67.     r.origin = aPoint;
  68.     [ my_tile_image getSize:&r.size ];
  69.  
  70.     PSsetgray( NX_DKGRAY );
  71.     NXRectFill( &r );
  72.  
  73.     [ my_tile_image composite:aMode toPoint:&aPoint ];
  74. }
  75.  
  76.  
  77.